/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application     fireFoam;

startFrom       startTime;

startTime       0.0;

stopAt          endTime;

endTime         2.0; //20.0;

deltaT          0.02;

writeControl    adjustableRunTime;

writeInterval   1;

purgeWrite      0;

writeFormat     ascii;
//writeFormat     binary;

writePrecision  6;

writeCompression uncompressed;

timeFormat      general;

timePrecision   6;

graphFormat     raw;

runTimeModifiable yes;

adjustTimeStep  no;

maxCo           1; //10.0;

maxDeltaT       0.02;

libs
(
    // causes setSet to crash
    // "libnewInjectionModels.so"
);

functions
{
    HRR
    {
        type            volFieldValue;
        functionObjectLibs ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    timeStep;  //writeTime;
        writeInterval   1;
        log             false;     //true;
        writeFields     false;
        regionType      all;       //cellZone;
        name            c0;
        operation       sum;
        fields
        (
            Qdot
        );
    }

//    fieldMinMax
//    {
//        type            fieldMinMax;
//        functionObjectLibs ("libfieldFunctionObjects.so");
//        enabled         true;
//        writeControl    timeStep;
//        writeInterval  1;
//	mode            magnitude;
//        log             false; //true;
//        writeFields     false;
//        fields
//        (
//            T
///*
//            CH4
//	    O2
//            H2O
//            CO2
//            N2
//*/
//        );
//    }
//
//    patchSides 
//    {
//        type            surfaceFieldValue;
//        functionObjectLibs ("libfieldFunctionObjects.so");
//        enabled         true;
//        writeControl    timeStep;
//        writeInterval  1;
//        //writeControl    writeTime;
//        log             true;
//        writeFields     false;
//        regionType      patch;
//        name            sides;
//        operation       sum;
//        fields
//        (
//            phi
//            HRR_fu
//            phiH
//            phiHs
//            phiHc
//        );
//    }
//
//    patchOutlet 
//    {
//        type            surfaceFieldValue;
//        functionObjectLibs ("libfieldFunctionObjects.so");
//        enabled         true;
//        writeControl    timeStep;
//        writeInterval  1;
//        //writeControl    writeTime;
//        log             true;
//        writeFields     false;
//        regionType      patch;
//        name            outlet;
//        operation       sum;
//        fields
//        (
//            phi
//            HRR_fu
//            phiH
//            phiHs
//            phiHc
//        );
//    }
//
//    patchInlet 
//    {
//        type            surfaceFieldValue;
//        functionObjectLibs ("libfieldFunctionObjects.so");
//        enabled         true;
//        writeControl    timeStep;
//        writeInterval  1;
//        //writeControl    writeTime;
//        log             true;
//        writeFields     false;
//        regionType      patch;
//        name            inlet;
//        operation       sum;
//        fields
//        (
//            phi
//            HRR_fu
//            phiH
//            phiHs
//            phiHc
//        );
//    }
///*
//    zones
//    {
//        //functionObjectLibs ("libsurfaceIntegration.so");
//        functionObjectLibs ("libfaceZonesIntegration.so");
//        type faceZonesIntegration;
//        enabled         true;
//        writeControl    timeStep;
//        writeInterval  1;
//        faceZones
//        (
//            f1
//            f2
//            f3
//            f4
//            f5
//            f6
//            f7
//            f8
//            f9
//            f10
//            f11
//            f12
//            f13
//            f14
//            f15
//            f16
//            f17
//            f18
//            f19
//            f20
//            f21
//            f22
//            f23
//            f24
//            f25
//            f26
//            f27
//            f28
//            f29
//            f30
//            f31
//            f32
//            f33
//            f34
//            f35
//            f36
//            f37
//            f38
//            f39
//        );
//        fields
//        (
//            phi
//            phiH
//            phiHc
//            phiHs
//            phiFt
//          //  phiFu
//          //  phiOx
//          //  phiPr
//            HRR_fu
//          //  HRR_pr
//        );
//    }
//*/
//
//    fieldAverage1
//    {
//        type            fieldAverage;
//        functionObjectLibs ( "libfieldFunctionObjects.so" );
//        enabled         true;
//        writeControl    writeTime;
//        fields
//        (
//            T
//            {
//                mean        on;
//                prime2Mean  on;
//                base        time;
//            }
//
//            U
//            {
//                mean        on;
//                prime2Mean  off;
//                base        time;
//            }
//
//            ft
//            {
//                mean        on;
//                prime2Mean  on;
//                base        time;
//            }
//
//            Qdot
//            {
//                mean        on;
//                prime2Mean  off;
//                base        time;
//            }
//        );
//    }

    thrust
    {
        type            surfaceFieldValue;
        functionObjectLibs ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    adjustableRunTime;
        writeInterval   1;
        log             true;
        writeFields     false;
        regionType      faceZone;
        name            thrust;
        operation       sum;
        fields
        (
        );
        // orientedFields needed in order to apply flipMap
        orientedFields
        (
            phi
            momentumY
        );
    }

}

// ************************************************************************* //
